Sensor rotation bias removal

ABSTRACT

A method for determining rotation bias in a sensor using a cooperative target that includes receiving, via a processor, sensor data acquired in a field of view of a sensor at a plurality of points in time. The method also includes receiving, via the processor, position data for a cooperative target travelling along a path through the field of view of the sensor at the plurality of points in time. The method also includes determining, via the processor, a rotation bias in the sensor based on a maximum likelihood estimate performed over the path based on the sensor data and the cooperative target position data.

BACKGROUND

In many security applications, fixed cameras, pan-tilt-zoom (PTZ) cameras, and short range surface detection radars are mounted on towers to provide complete coverage of the secured area. These towers are prone to slowly varying deformations caused by temperature gradients and wind loading which causes each sensor bore sight to rotate away from its registered value. To correct for these errors it is possible to mount compass and inclinometer boards on each sensor, but in large installations there would be many such boards to calibrate and maintain. A need therefore exists for improved methods and systems for determining and removing the effects of the bias in the sensors.

SUMMARY

One embodiment is a method for determining rotation bias in a sensor using a cooperative target. The method includes receiving, via a processor, sensor data acquired in a field of view of a sensor at a plurality of points in time. The method also includes receiving, via the processor, position data for a cooperative target travelling along a path through the field of view of the sensor at the plurality of points in time. The method also includes determining, via the processor, a rotation bias in the sensor based on a maximum likelihood estimate performed over the path based on the sensor data and the cooperative target position data.

In some embodiments, the method includes correcting a sensor measurement command based on the determined rotation bias. In some embodiments, the sensor measurement command is a slewing command of the sensor. In some embodiments, the method includes correcting measurements made using the sensor based on the rotation bias and providing the corrected sensor measurements to a multiple hypothesis tracker.

In some embodiments, the maximum likelihood estimate is calculated in accordance with the following:

${\Lambda\left( \overset{\_}{b} \right)} = {\sum\limits_{k = 1}^{K}{\min\left( {{\ln(V)},{\min\limits_{1 \leq n_{k} \leq m_{k}}\left\{ {{{\frac{1}{2}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}^{T}{S_{k}^{- 1}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}} + {\ln\left( {2\pi\sqrt{S_{k}}} \right)}} \right\}}} \right)}}$ wherein, z _(k,n) _(k) represents the set of n_(k) sensor measurements at dwell k, b is the rotation bias, V is the field of view volume, x _(k|k) is the cooperative target coordinate position output by a Kalman filter, h _(k) is an expected measurement for the sensor measurement, and S_(k) is a sensor measurement covariance matrix.

In some embodiments, the method includes acquiring the sensor data and the cooperative target position data if the cooperative target is located within the field of view of the sensor. In some embodiments, the method includes determining the rotation bias if the cooperative target is located within the field of view of the sensor. In some embodiments, the method includes generating the sensor data using a change detection process on measurements acquired using the sensor. In some embodiments, the cooperative target is a GPS equipped cooperative target.

Another embodiment is a system for determining rotation bias in a sensor using a cooperative target. The system includes a sensor module configured to receive sensor data acquired in a field of view of a sensor at a plurality of points in time. The system also includes a target position module configured to generate position data for a cooperative target travelling along a path through the field of view of the sensor at the plurality of points in time. The system also includes a rotation bias module configured to determine a rotation bias in the sensor based on a maximum likelihood estimate performed over the path based on the sensor data and the cooperative target position data.

In some embodiments, the sensor module is configured to acquire the sensor data and the target position module is configured to acquire the position data if the cooperative target is located within the field of view of the sensor. In some embodiments, the rotation bias module is configured to determine the rotation bias based on whether the cooperative target is located within the field of view of the sensor.

In some embodiments, the system includes a sensor command module that is configured to correct a sensor measurement command based on the determined rotation bias. In some embodiments, the sensor measurement command is a slewing command of the sensor. In some embodiments, the system includes a sensor measurement correction module configured to correct measurements made using the sensor based on the rotation bias and provide the corrected sensor measurements to a multiple hypothesis tracker.

In some embodiments, the cooperative target includes a receiver for measuring position of the cooperative target and a transmitter for transmitting the measured cooperative target position data to the rotation bias module. In some embodiments, the rotation bias module is configured to calculate the maximum likelihood estimate in accordance with:

${\Lambda\left( \overset{\_}{b} \right)} = {\sum\limits_{k = 1}^{K}{\min\left( {{\ln(V)},{\min\limits_{1 \leq n_{k} \leq m_{k}}\left\{ {{{\frac{1}{2}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}^{T}{S_{k}^{- 1}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}} + {\ln\left( {2\pi\sqrt{S_{k}}} \right)}} \right\}}} \right)}}$ wherein, z _(k,n) _(k) represents the set of n_(k) sensor measurements at dwell k, b is the rotation bias, V is the field of view volume, x _(k|k) is the cooperative target coordinate position output by a Kalman filter, h _(k) is an expected measurement for the sensor measurement, and S_(k) is a sensor measurement covariance matrix.

In some embodiments, the system includes a change detection module for generating the sensor data from measurements acquired using the sensor. In some embodiments, the cooperative target is a GPS equipped cooperative target.

Another embodiment is a system for determining rotation bias in a sensor using a cooperative target. The system includes at least one sensor and a sensor module configured to acquire sensor data in a field of view of the at least one sensor at a plurality of points in time. The system also includes a target position module configured to acquire position data for a cooperative mobile target travelling along a path through the field of view of the sensor at the plurality of points in time. The system also includes a rotation bias module configured to determine a rotation bias in the sensor based on a maximum likelihood estimate performed over the path based on the sensor data measurements and the cooperative target position data.

Another embodiment is a system for determining rotation bias in a sensor using a cooperative target. The system includes a rotation bias module configured to determine a rotation bias in a sensor, wherein the rotation bias is based on a maximum likelihood estimate performed using position data acquired at a plurality of points in time for a cooperative target travelling over a path through the sensor field of view and is also based on sensor data acquired in the sensor field of view at the plurality of points in time.

The rotation bias determination methods and systems described herein (hereinafter “technology”) can provide one or more of the following advantages. One advantage of the technology is centralized processing of sensor measurements to determine rotation bias in sensors, enables easy, automated calibration of the sensors. Another advantage is the use of a GPS enabled cooperative target to determine the rotation bias in sensors, reduces the cost and complexity associated with determining the bias and with calibrating the sensors in the field.

Other aspects and advantages of the current invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating the principles of the invention by way of example only.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing features of various embodiments of the invention will be more readily understood by reference to the following detailed descriptions in the accompanying drawings.

FIG. 1 is a schematic illustration of a system for determining rotation bias in a sensor using a cooperative target, according to an illustrative embodiment.

FIG. 2 is a schematic illustration of rotations of the sensor frame relative to the inertial reference frame, in an exemplary embodiment.

FIG. 3 is a flowchart of a method for determining rotation bias in a sensor using a cooperative target, according to an illustrative embodiment.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

Fixed cameras, pan-tilt-zoom cameras, and surface detection radars are susceptible to ambient changes in the support structures use to support the sensors. Temperature changes cause the position and/or orientation of the structures to vary thereby causing measurement errors in the sensor signals. The measurement errors compromise a sensor's ability to, for example, properly determine a target location or track a target. Embodiments described herein determine rotation bias in sensors and compensate for the rotation bias to enable accurate measurements to be made.

FIG. 1 is a schematic illustration of a system 100 for determining rotation bias in one or more sensors 104 a, 104 b and 104 c (generally 104) using a cooperative target 108, according to an illustrative embodiment. The sensors 104 measure position and velocity (e.g., range, range rate, azimuth and elevation) of target-like objects in the field of view (FOV) of the sensors 104. Exemplary types of sensors 104 are video surveillance cameras (e.g., pan-tilt-zoom (PTZ) cameras and fixed cameras) and surface detection radars (e.g., X-band surface detection radars). The sensors 104 transmit the target measurements to a processor 112 of the system 100.

In this embodiment, the cooperative target 108 is a mobile system that is capable of travelling along a path 122 through the field of view of the sensors 104. The cooperative target 108 is equipped to provide position and velocity data for the cooperative target 108 as it travels along the path 122 at a plurality of points in time (e.g., t1, t2, t3). In this embodiment, the cooperative target 108 is equipped with a global positioning system (GPS) receiver 160 that measures position and velocity of the target 108 based on signals generated by a GPS satellite 106. The cooperative target 108 also includes a transmitter 110 to transmit the measurements data associated with the target 108 to the processor 112.

The system 100 also includes a plurality of modules and devices that process the measurement data to determine the rotation bias in the sensors 104. In this embodiment, the system 100 includes a plurality of modules coupled to the processor: a sensor module 116, a target position module 120, a rotation bias module 124, a sensor command module 128, and a sensor measurement correction module 132. The system 100 also includes a plurality of devices coupled to the processor: input device 136, output device 140, display device 144, and storage device 150.

The sensor module 116 is configured to receive sensor data acquired in the field of view of the sensors 104 at a plurality of times (i.e., t1, t2, t3). The sensor data for the cooperative target is determined based on the measurements made using the sensors 104. In some embodiments, the system 100 has only a single sensor 104. In some embodiments, the sensors 104 are each the same type of sensor. However, in some embodiments, the sensors 104 include a plurality of different sensor types.

The target position module 120 is configured to generate position data for the cooperative target travelling along path 122 through the field of view of the sensors 104 at the plurality of points in time. The target position module 120 generates the position data based on the measurements made using the receiver 160.

The rotation bias module 124 is configured to determine a rotation bias in the sensors 104 based on a maximum likelihood estimate performed over the path 122 based on the sensor data and the cooperative target position data.

The sensor command module 128 is configured to correct sensor measurement commands based on the determined rotation bias. For example, in systems that employ the sensors 104 to monitor the field of view surrounding the sensors, an operator or automatic control system sends commands to the sensors 104 to scan across a specific path in the field of view of the sensors. In the absence of being able to determine the rotation bias, the commands would cause the sensors 104 to be directed to scan across a different, incorrect path.

The sensor measurement correction module 132 is configured to correct measurements made using the sensors 104 based on the rotation bias and provide the corrected sensor measurements to, for example a multiple hypothesis tracking system. For example, in systems that employ the sensors 104 to track targets, the system 100 sends corrected sensor measurements to the tracking system. Accordingly, in systems that employ the concepts described herein, it is possible to compensate for the rotation bias such that sensor measurements sent to the tracker will result in proper tracking of the targets.

The modules and devices described herein can, for example, utilize the processor 112 to execute computer executable instructions and/or include a processor to execute computer executable instructions. It should be understood that the system 100 can include, for example, other modules, devices, and/or processors known in the art and/or varieties of the illustrated modules, devices, and/or processors.

The input device 136 receives information associated with the system 100 (e.g., instructions from a user, instructions from another computing device) from a user or moderator (not shown) and/or another computing system (not shown). The input device 136 can include, for example, a keyboard or a scanner. The output device 140 outputs information associated with the system 100 (e.g., information to a printer (not shown), information to an audio speaker (not shown)). The display device 144 displays information associated with the system 100 (e.g., status information, configuration information, rotation bias values, target location). The processor 112 executes the operating system and/or any other computer executable instructions for the system 100 (e.g., sends rotation bias compensated sensor signals to a multiple hypothesis tracking system). The storage device 150 stores the various information associated with the system 100 and its operation. The storage device 150 can store information and/or any other data associated with the system 100. The storage device 150 can include a plurality of storage devices. The storage device 150 can include, for example, long-term storage (e.g., a hard drive, a tape storage device, flash memory), short-term storage (e.g., a random access memory, a graphics memory), and/or any other type of computer readable storage.

FIG. 3 is a flowchart 300 of a method for determining rotation bias in a sensor using a cooperative target, according to an illustrative embodiment. The method can be implemented using, for example, the system 100 of FIG. 1. The method includes determining 304 if the cooperative target is in the sensor's field of view. If the cooperative target is in the sensor's field of view, the method includes receiving sensor data 308 acquired in the field of view of the sensor at a plurality of points in time. The method also includes receiving position data 312 for the cooperative target travelling along a path through the field of view of the sensor at the plurality of points in time. The sensor data and the cooperative target position data may, for example, be received via the processor 112 of FIG. 1.

In some embodiments, the step of receiving sensor data 308 first involves acquiring sensor position measurements 316 for the cooperative target and then generating the sensor data 320 based on the sensor position measurements. This may involve, for example, generating the position by converting range, azimuth and elevation measurements to a position in an inertially-fixed X, Y, and Z coordinate system. In an embodiment that uses a camera as the sensor, video frames can be processed with a change detection algorithm to identify target-like objects for input to the tracker.

The technology described herein may be applied to any general sensor (e.g., a sensor capable of measuring range, azimuth, and elevation. In one embodiment, we consider a surface detection radar that measures only range and azimuth. Assuming the inertial cooperative target position is given by R _(t)=X_(t)Ī+Y_(t) J+Z_(t) K and the inertial sensor position is given by R _(r)=X_(r)Ī+Y_(r) J+Z_(r) K and that when registered the sensor reference frame axes are parallel with the inertial frame axes.

We then consider a general rotation of the sensor reference frame relative to the inertial frame as shown in FIG. 2. A vector X in the inertial frame will be rotated into a vector x in the sensor frame in accordance with:

$\begin{matrix} {{{\overset{\_}{x}\left\lbrack {R\left( {\alpha,\beta,\gamma} \right)} \right\rbrack} = {{\left\lbrack {R_{2}\left( {\beta,\gamma} \right)} \right\rbrack\left\lbrack {R_{1}(\alpha)} \right\rbrack}\overset{\_}{X}}}{where}} & {{EQN}.\mspace{14mu} 1} \\ {{\left\lbrack {R_{1}(\alpha)} \right\rbrack = \begin{bmatrix} {\cos(\alpha)} & {- {\sin(\alpha)}} & 0 \\ {\sin(\alpha)} & {\cos(\alpha)} & 0 \\ 0 & 0 & 1 \end{bmatrix}}{and}} & {{EQN}.\mspace{14mu} 2} \\ {\left\lbrack {R_{2}\left( {\beta,\gamma} \right)} \right\rbrack = \begin{bmatrix} {{\cos(\gamma)} + {{\cos^{2}(\beta)}\left( {1 - {\cos(\gamma)}} \right)}} & {{\sin(\beta)}{\cos(\beta)}\left( {1 - {\cos(\gamma)}} \right)} & {{\sin(\beta)}{\sin(\gamma)}} \\ {{\sin(\beta)}{\cos(\beta)}\left( {1 - {\cos(\gamma)}} \right)} & {{\cos(\gamma)} + {{\sin^{2}(\beta)}\left( {1 - {\cos(\gamma)}} \right)}} & {{- {\cos(\beta)}}{\sin(\gamma)}} \\ {{- {\sin(\beta)}}{\sin(\gamma)}} & {{\cos(\beta)}{\sin(\gamma)}} & {\cos(\gamma)} \end{bmatrix}} & {{EQN}.\mspace{14mu} 3} \end{matrix}$ This form of the rotation was chosen in this embodiment for clarity, however, any three parameter/three degree rotation (e.g., space fixed) is applicable. The sensor frame is rotated by a around the Z axis, and then by γ about an axis in the X-Y plane at an angle β from the X axis.

The sensor measurement equation can be written as:

$\begin{matrix} {{{\overset{\_}{g}}_{k}\left( {\overset{\_}{x}}_{k} \right)} = {\begin{bmatrix} {g_{x}\left( {\overset{\_}{x}}_{k} \right)} \\ {g_{y}\left( {\overset{\_}{x}}_{k} \right)} \\ {g_{z}\left( {\overset{\_}{x}}_{k} \right)} \end{bmatrix} = {{\left\lbrack {R_{2}\left( {\beta,\gamma} \right)} \right\rbrack\left\lbrack {R_{1}(\alpha)} \right\rbrack}\begin{bmatrix} {X_{t,k} - X_{r}} \\ {Y_{t,k} - Y_{r}} \\ {Z_{t,k} - Z_{r}} \end{bmatrix}}}} & {{EQN}.\mspace{14mu} 4} \\ {{{{\overset{\_}{h}}_{k}\left( {{\overset{\_}{g}}_{k}\left( {\overset{\_}{x}}_{k} \right)} \right)} = {\begin{bmatrix} r_{k} \\ \theta_{k} \\ \phi_{k} \end{bmatrix} = \begin{bmatrix} \sqrt{g_{x}^{2} + g_{y}^{2} + g_{z}^{2}} \\ {\tan^{- 1}\left( \frac{g_{y}}{g_{x}} \right)} \\ {\tan^{- 1}\left( \frac{g_{z}}{\sqrt{g_{x}^{2} + g_{y}^{2}}} \right)} \end{bmatrix}}}{where}} & {{EQN}.\mspace{14mu} 5} \\ {{\overset{\_}{x}}_{k} = \begin{bmatrix} X_{t,k} & Y_{t,k} & Z_{t,k} & {\overset{.}{X}}_{t,k} & {\overset{.}{Y}}_{t,k} & {\overset{.}{Z}}_{t,k} & {\overset{¨}{X}}_{t,k} & {\overset{¨}{Y}}_{t,k} & {\overset{¨}{Z}}_{t,k} \end{bmatrix}^{T}} & {{EQN}.\mspace{14mu} 6} \end{matrix}$ is the state vector used for tracking the cooperative target position and velocity where the subscript k is the discrete time index and the subscript t indicates the target state in the inertial reference frame.

The step of receiving position data 312 for the cooperative target can involve first acquiring cooperative target position measurements 324 and then filtering (using, for example, a Kalman filter method) the position measurements 328 to generate the cooperative target position data. In one embodiment, the cooperative target position data is filtered in accordance with the following Kalman filter formulation:

$\begin{matrix} {{{\overset{\_}{x}}_{k} = {{F\;{\overset{\_}{x}}_{k - 1}} + {\overset{\_}{u}}_{k}}}{where}} & {{EQN}.\mspace{14mu} 7} \\ {{{\overset{\_}{x}}_{k} = \begin{matrix} \left\lbrack X_{t,k} \right. & Y_{t,k} & Z_{t,k} & {\overset{.}{X}}_{t,k} & {\overset{.}{Y}}_{t,k} & {\overset{.}{Z}}_{t,k} & {\overset{¨}{X}}_{t,k} & {\overset{¨}{Y}}_{t,k} & \left. {\overset{¨}{Z}}_{t,k} \right\rbrack^{T} \end{matrix}}\;{and}} & {{EQN}.\mspace{14mu} 8} \\ {F = \begin{bmatrix} I_{3} & {TI}_{3} & {\frac{{- 1} + {aT} + {\mathbb{e}}^{- {aT}}}{a^{2}}I_{3}} \\ 0_{3} & I_{3} & {\frac{1 - {\mathbb{e}}^{- {aT}}}{a}I_{3}} \\ 0_{3} & 0_{3} & {{\mathbb{e}}^{- {aT}}I_{3}} \end{bmatrix}} & {{EQN}.\mspace{14mu} 9} \end{matrix}$ where F is the filter, I₃ is a 3×3 identity matrix, 0₃ is a 3×3 zero matrix, a is the maneuver noise bandwidth, and T is the update interval. The process noise matrix, also referred to as maneuver noise excitation matrix, is given by Singer (in Robert A. Singer, “Estimating Optimal Tracking Filter Performance for Manned Maneuvering Targets”, IEEE Transactions on Aerospace and Electronic Systems, Vol. 6 No. 4, 1970, pp. 473-483) which is hereby incorporated by reference in its entirety:

$\begin{matrix} {Q = {2a\;{{\sigma_{m}^{2}\begin{bmatrix} {q_{11}I_{3}} & {q_{12}I_{3}} & {q_{13}I_{3}} \\ {q_{12}I_{3}} & {q_{22}I_{3}} & {q_{23}I_{3}} \\ {q_{13}I_{3}} & {q_{23}I_{3}} & {q_{33}I_{3}} \end{bmatrix}}.}}} & {{EQN}.\mspace{14mu} 10} \end{matrix}$ where σ_(m) ² is the maneuver noise variance and the remaining parameters q_(ij) are defined by Singer (in Robert A. Singer, “Estimating Optimal Tracking Filter Performance for Manned Maneuvering Targets”, IEEE Transactions on Aerospace and Electronic Systems, Vol. 6 No. 4, 1970, pp. 473-483).

The measurement equation is given by:

$\begin{matrix} {{{\overset{\_}{z}}_{k} = {{H\;{\overset{\_}{x}}_{k}} + {\overset{\_}{v}}_{k}}}{where}{H = \begin{bmatrix} I_{3} & 0_{3} & 0_{3} \\ 0_{3} & I_{3} & 0_{3} \end{bmatrix}}} & {{EQN}.\mspace{14mu} 11} \end{matrix}$

Next, we consider the set of validated measurements that must be processed on any sensor dwell. This set may contain clutter and might not contain the target. We assume that the validation region is a subset of the sensor field of view that is large enough to allow for the range of expected rotation biases and guarantees that the sensor measurements on the dwells to be processed will include a return from the cooperative target if it is detected. We next let: Z ^(K) ={Z _(1,m) , . . . , Z _(K,m) _(K) }  EQN. 12 represent the measurement record where Z _(k,m) _(k) ={ z _(k,1) , . . . , z _(k,m) _(k) }  EQN. 13 represents the set of m_(k) measurements at dwell k, each with covariance R. Let ξ_(k,n) _(k) represent the event that the n_(k) ^(th) measurement (1<n_(k)<m_(k)) was from the cooperative target on the k^(th) dwell and where n_(k)=0 (i.e. ξ_(k,0)) is the event that no measurement originated from the cooperative target, and let Ξ^(K)={ξ_(1,n), . . . , ξ_(K,n) _(K) }  EQN. 14 represent the assignment of measurements to the cooperative target on each dwell. Let {circumflex over (X)} ^(K) ={ x _(1|1) , . . . , x _(K|K)}  EQN. 15 represent the cooperative target position estimates from the Kalman filter based on cooperative target position and velocity measurements over the measurement record.

Let P ^(K) {P _(1/1) , . . . , P _(K|K)}  EQN. 16 represent the covariance of these position estimates. Let b=[αβγ]^(T) represent the rotation bias vector. Then assuming Gaussian statistics and approximating the measurement mean value using the cooperative target position state, the conditional probability density function of the measurement record is given by

$\begin{matrix} {\mspace{79mu}{{{\rho\left( {\left. Z^{K} \middle| \Xi^{K} \right.,\overset{\_}{b},{\hat{X}}^{K},P^{K},R} \right)} = {\prod\limits_{k = 1}^{K}A_{k}}}\mspace{79mu}{where}}} & {{EQN}.\mspace{14mu} 17} \\ {{A_{k} = {\frac{V^{{- m_{k}} + 1}}{2\pi\sqrt{S_{k}}}{\exp\left( {{- {\frac{1}{2}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}^{T}}{{S\left( {P_{k|k},{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}^{- 1}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}} \right)}}}\mspace{79mu}{{{for}\mspace{14mu} n_{k}} \neq {0\mspace{14mu}{and}}}} & {{EQN}.\mspace{14mu} 18} \\ {\mspace{79mu}{{A_{k} = V^{- m_{k}}}\mspace{79mu}{{{for}\mspace{14mu} n_{k}} = 0.}}} & {{EQN}.\mspace{14mu} 19} \end{matrix}$

In EQNS. 17-19, V is the volume of the validation region, S(P_(k|k), x _(k|k), b)=H_(k)P_(k|k)H_(k) ^(T)+R, H_(k) ^(T) is the measurement gradient matrix, which is linearized about the state estimate and bias, R is the measurement covariance, and the expected measurement h _(k) as a function of the state estimate and bias are obtained from EQNS. 4 and 5. Note that the sensor measurement rate and the cooperative target update rates are not necessarily aligned. Typically the sensor measurements arrive at a higher rate than the cooperative target measurements, and the state and covariance used above represent the values extrapolated to the measurement time when there is no coincident cooperative target measurement.

The maximum likelihood estimates of b and Ξ^(K) are those values that maximize EQN. 17. Let Λ(Ξ^(K) , b )=−1n(ρ(Z ^(K)|Ξ^(K) , b,{circumflex over (X)} ^(K) ,P ^(K) ,R))  EQN. 20. Then from EQNS. 17-19 it follows that the maximum likelihood (ML) estimate of b will minimize

$\begin{matrix} {{\Lambda\left( \overset{\_}{b} \right)} = {\sum\limits_{k = 1}^{K}{\min\left( {{\ln(V)},{\min\limits_{1 \leq n_{k} \leq m_{k}}{\left\{ {{{\frac{1}{2}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}^{T}{S_{k}^{- 1}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}} + {\ln\left( {2\pi\sqrt{S_{k}}} \right\}}} \right).}}} \right.}}} & {{EQN}.\mspace{14mu} 21} \end{matrix}$

Note that in EQN. 21 the values of n_(k) selected in the minimization determine Ξ^(K) where n_(k)=0 if ln(V) is selected. The minimization will be dependent on b, and consequently the objective function can switch the selection for n_(k) as b changes, and it will, in general, be discontinuous. This equation can be optimized using a hybrid gradient descent (GD) and particle swarm optimizer (PSO), which requires a gradient calculation. Following EQNS. 4 and 5, in EQN. 21:

$\begin{matrix} {{{\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},b} \right)} = {\begin{bmatrix} r_{k} \\ \theta_{k} \\ \phi_{k} \end{bmatrix} = \begin{bmatrix} \sqrt{g_{x}^{2} + g_{y}^{2} + g_{z}^{2}} \\ {\tan^{- 1}\left( \frac{g_{y}}{g_{x}} \right)} \\ {\tan^{- 1}\left( \frac{g_{z}}{\sqrt{g_{x}^{2} + g_{y}^{2}}} \right)} \end{bmatrix}}}{where}} & {{EQN}.\mspace{14mu} 22} \\ {{{\overset{\_}{g}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)} = {\begin{bmatrix} g_{x} \\ g_{y} \\ g_{z} \end{bmatrix} = {{\left\lbrack {R^{2}\left( {\beta,\gamma} \right)} \right\rbrack\left\lbrack {R_{1}(\alpha)} \right\rbrack}\begin{bmatrix} {x_{k|k} - x_{r}} \\ {y_{k|k} - y_{r}} \\ {z_{k|k} - z_{r}} \end{bmatrix}}}}{and}{\overset{\_}{b} = \begin{bmatrix} \alpha \\ \beta \\ \gamma \end{bmatrix}}} & {{EQN}.\mspace{14mu} 23} \end{matrix}$ is the rotation bias,

$\quad\begin{bmatrix} x_{r} \\ y_{r} \\ z_{r} \end{bmatrix}$ is the sensor position, and

${\overset{\_}{x}}_{k|k} = \begin{bmatrix} x_{k|k} \\ y_{k|k} \\ z_{k|k} \end{bmatrix}$ is the position component of the cooperative target state. Also, from the chain rule, H _(k)=( V _(x) _(k|k) h ^(T))^(T)| _(x) _(k|k) _(, b) =( V _(g) h ^(T))^(T)| _(g( x) _(k|k)) ( V _(x) _(k|k) g ^(T))^(T)| _(x) _(k|k) _(, b)   EQN. 24 from which

$\begin{matrix} {H_{k} = \left. \begin{bmatrix} \frac{g_{x}}{r} & \frac{g_{y}}{r} & \frac{g_{z}}{r} \\ \frac{- g_{y}}{R^{2}} & \frac{g_{x}}{R^{2}} & 0 \\ {\frac{1}{R}\frac{{- g_{z}}g_{x}}{R^{2} + g_{z}^{2}}} & {\frac{1}{R}\frac{1 - {g_{z}g_{y}}}{R^{2} + g_{z}^{2}}} & \frac{R}{R^{2} + g_{z}^{2}} \end{bmatrix} \middle| {}_{\overset{\_}{g}{({\overset{\_}{x}}_{k|k})}}{\left\lbrack {R_{2}\left( {\beta,\gamma} \right)} \right\rbrack\left\lbrack {R_{1}(\alpha)} \right\rbrack} \right.} & {{EQN}.\mspace{14mu} 25} \end{matrix}$ where r=√{square root over (g_(x) ²+g_(y) ²+g_(z) ²)} and R=√{square root over (g_(x) ²+g_(y) ²)}. Note that in EQN. 21 both h and H_(k) are functions of b. From EQN. 21:

$\begin{matrix} {\frac{\partial\Lambda}{\partial\alpha} = {{\sum\limits_{\underset{n_{k} \neq o}{k = 1}}^{K}{\left\lbrack \frac{- {\partial{\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}}}{\partial\alpha} \right\rbrack^{T}{S_{k}^{- 1}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}}} + {{\frac{1}{2}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}^{T}{\frac{\partial S_{k}^{- 1}}{\partial\alpha}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}} + {\frac{1}{2}\frac{\partial{\ln\left( {S_{k}} \right)}}{\partial\alpha}}}} & {{EQN}.\mspace{14mu} 26} \end{matrix}$ where, from the chain rule,

$\begin{matrix} {\frac{\partial{\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}}{\partial\alpha} = \left. \left( {{\overset{\_}{V}}_{\overset{\_}{g}}{\overset{\_}{h}}^{T}} \right)^{T} \middle| {}_{\overset{\_}{g}{({\overset{\_}{x}}_{k|k})}}\left( \frac{\partial\overset{\_}{g}}{\partial\alpha} \right) \middle| {}_{{\overset{\_}{x}}_{k|k},\overset{\_}{b}}{{and}\left( \frac{\partial g}{\partial\alpha} \right)} \right|_{{\overset{\_}{x}}_{k|k},\overset{\_}{b}}} & {{EQN}.\mspace{14mu} 27} \end{matrix}$ is readily obtained from EQN. 23 to obtain:

$\begin{matrix} {{\frac{\partial{\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}}{\partial\alpha} = \left. \begin{bmatrix} \frac{g_{x}}{r} & \frac{g_{y}}{r} & \frac{g_{z}}{r} \\ \frac{- g_{y}}{R^{2}} & \frac{g_{x}}{R^{2}} & 0 \\ {\frac{1}{R}\frac{{- g_{z}}g_{x}}{R^{2} + g_{z}^{2}}} & {\frac{1}{R}\frac{{- g_{z}}g_{y}}{R^{2} + g_{z}^{2}}} & \frac{R}{R^{2} + g_{z}^{2}} \end{bmatrix} \middle| {}_{\overset{\_}{g}{({\overset{\_}{x}}_{k|k})}}\mspace{79mu}{{\left\lbrack {R_{2}\left( {\beta,\gamma} \right)} \right\rbrack\left\lbrack \frac{\partial{R_{1}(\alpha)}}{\partial\alpha} \right\rbrack}\begin{bmatrix} {x_{k|k} - x_{r}} \\ {y_{k|k} - y_{r}} \\ {z_{k|k} - z_{r}} \end{bmatrix}} \right.}\mspace{79mu}{where}\mspace{79mu}{\frac{\partial S_{k}^{- 1}}{\partial\alpha} = {{- {S_{k}^{- 1}\left( \frac{\partial S_{k}}{\partial\alpha} \right)}}S_{k}^{- 1}}}\mspace{79mu}{and}\mspace{79mu}\left( \frac{\partial S_{k}}{\partial\alpha} \right)} & {{EQN}.\mspace{14mu} 28} \end{matrix}$ is readily obtained from S_(k)=H_(k)P_(k|k)H_(k) ^(T)+R and EQN. 25, and where

$\frac{\partial{\ln\left( {S_{k}} \right)}}{\partial\alpha} = {{{Tr}\left( {S_{k}^{- 1}\frac{\partial S_{k}}{\partial\alpha}} \right)}.}$ Similar expressions are easily obtained for β and γ. Other parameterizations of the rotation matrix are readily accommodated.

In this embodiment, the method then involves determining the rotation bias 332 in the sensor based on a maximum likelihood estimated performed over the path based on the sensor data and the cooperative target position data. In one embodiment, the method includes calculating the maximum likelihood estimate in accordance with:

$\begin{matrix} {{\Lambda\left( \overset{\_}{b} \right)} = {\sum\limits_{k = 1}^{K}{\min\left( {{\ln(V)},{\min\limits_{1 \leq n_{k} \leq m_{k}}\left\{ {{{\frac{1}{2}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}^{T}{S_{k}^{- 1}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}} + {\ln\left( {2\pi\sqrt{S_{k}}} \right)}} \right\}}} \right)}}} & {{EQN}.\mspace{14mu} 29} \end{matrix}$ where, z _(k,n) _(k) represents the set of n_(k) sensor measurements at dwell k, b is the rotation bias, V is the field of view volume, x _(k|k) is the cooperative target coordinate position output by a Kalman filter, h _(k) is an expected measurement for the sensor measurement, and S_(k) is a sensor measurement covariance matrix.

In this embodiment, the method then includes the optional step of saving the rotation bias 336 for, for example, subsequent retrieval. In this embodiment, the method includes using the rotation bias for correcting sensor measurement commands (e.g., slewing commands of the sensor) based on the determined rotations bias 340 and/or correcting measurements made using the sensor 344 based on the rotation bias. After correcting the measurements (step 344), the method also includes providing the corrected sensor measurements to a multiple hypothesis tracker 348.

Comprise, include, and/or plural forms of each are open ended and include the listed parts and can include additional parts that are not listed. And/or is open ended and includes one or more of the listed parts and combinations of the listed parts.

One skilled in the art will realize the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The foregoing embodiments are therefore to be considered in all respects illustrative rather than limiting of the invention described herein. Scope of the invention is thus indicated by the appended claims, rather than by the foregoing description, and all changes that come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein. 

The invention claimed is:
 1. A method for determining rotation bias in a sensor using a cooperative target, the method comprising: receiving, via a processor, sensor data acquired in a field of view of a sensor at a plurality of points in time; receiving, via the processor, position data for a cooperative target travelling along a path through the field of view of the sensor at the plurality of points in time; determining, via the processor, a rotation bias in the sensor based on a maximum likelihood estimate performed over the path based on the sensor data and the cooperative target position data; and commanding the sensor to scan across a specific path in the field of view of the sensor based on the determined rotation bias.
 2. The method of claim 1, comprising correcting a sensor measurement command based on the determined rotation bias.
 3. The method of claim 2, wherein the sensor measurement command is a slewing command of the sensor.
 4. The method of claim 1, comprising correcting measurements made using the sensor based on the rotation bias and providing the corrected sensor measurements to a multiple hypothesis tracker.
 5. The method of claim 1, wherein the maximum likelihood estimate is calculated in accordance with: ${\Lambda\left( \overset{\_}{b} \right)} = {\sum\limits_{k = 1}^{K}{\min\left( {{\ln(V)},{\min\limits_{1 \leq n_{k} \leq m_{k}}\left\{ {{{\frac{1}{2}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}^{T}{S_{k}^{- 1}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}} + {\ln\left( {2\pi\sqrt{S_{k}}} \right)}} \right\}}} \right)}}$ wherein, z _(k,n) _(k) represents the set of n_(k) sensor measurements at dwell k, b is the rotation bias, V is the field of view volume, x _(k|k) is the cooperative target coordinate position output by a Kalman filter, h _(k) is an expected measurement for the sensor measurement, and S_(k) is a sensor measurement covariance matrix.
 6. The method of claim 1, comprising acquiring the sensor data and the cooperative target position data if the cooperative target is located within the field of view of the sensor.
 7. The method of claim 1, comprising determining the rotation bias if the cooperative target is located within the field of view of the sensor.
 8. The method of claim 1, comprising generating the sensor data using a change detection process on measurements acquired using the sensor.
 9. The method of claim 1, wherein the cooperative target is a GPS equipped cooperative target.
 10. A system for determining rotation bias in a sensor using a cooperative target, the system comprising: a sensor processor configured to receive sensor data acquired in a field of view of a sensor at a plurality of points in time; a target position processor configured to generate position data for a cooperative target travelling along a path through the field of view of the sensor at the plurality of points in time; a rotation bias processor configured to determine a rotation bias in the sensor based on a maximum likelihood estimate performed over the path based on the sensor data and the cooperative target position data; and an automatic controller configured to command the sensor to scan across a specific path in the field of view of the sensor based on the determined rotation bias.
 11. The system of claim 10, wherein the sensor processor is configured to acquire the sensor data and the target position processor is configured to acquire the position data if the cooperative target is located within the field of view of the sensor.
 12. The system of claim 10, wherein the rotation bias processor is configured to determine the rotation bias based on whether the cooperative target is located within the field of view of the sensor.
 13. The system of claim 10, comprising a sensor command processor that is configured to correct a sensor measurement command based on the determined rotation bias.
 14. The system of claim 13, wherein the sensor measurement command is a slewing command of the sensor.
 15. The system of claim 10, comprising a sensor measurement correction processor configured to correct measurements made using the sensor based on the rotation bias and provide the corrected sensor measurements to a multiple hypothesis tracker.
 16. The system of claim 10, wherein the cooperative target includes a receiver for measuring position of the cooperative target and a transmitter for transmitting the measured cooperative target position data to the rotation bias processor.
 17. The system of claim 10, wherein the rotation bias processor is configured to calculate the maximum likelihood estimate in accordance with: ${\Lambda\left( \overset{\_}{b} \right)} = {\sum\limits_{k = 1}^{K}{\min\left( {{\ln(V)},{\min\limits_{1 \leq n_{k} \leq m_{k}}\left\{ {{{\frac{1}{2}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}^{T}{S_{k}^{- 1}\left\lbrack {{\overset{\_}{z}}_{k,n_{k}} - {\overset{\_}{h}\left( {{\overset{\_}{x}}_{k|k},\overset{\_}{b}} \right)}} \right\rbrack}} + {\ln\left( {2\pi\sqrt{S_{k}}} \right)}} \right\}}} \right)}}$ wherein, z _(k,n) _(k) represents the set of n_(k) sensor measurements at dwell k, b is the rotation bias, V is the field of view volume, x _(k|k) is the cooperative target coordinate position output by a Kalman filter, h _(k) is an expected measurement for the sensor measurement, and S_(k) is a sensor measurement covariance matrix.
 18. The system of claim 10, comprising a change detection processor for generating the sensor data from measurements acquired using the sensor.
 19. The system of claim 10, wherein the cooperative target is a GPS equipped cooperative target.
 20. A system for determining rotation bias in a sensor using a cooperative target, the system comprising: at least one sensor; a sensor processor configured to acquire sensor data in a field of view of the at least one sensor at a plurality of points in time; a target position processor configured to acquire position data for a cooperative mobile target travelling along a path through the field of view of the sensor at the plurality of points in time; a rotation bias processor configured to determine a rotation bias in the sensor based on a maximum likelihood estimate performed over the path based on the sensor data measurements and the cooperative target position data; and an automatic controller configured to command the sensor to scan across a specific path in the field of view of the sensor based on the determined rotation bias.
 21. A system for determining rotation bias in a sensor using a cooperative target, the system comprising: a rotation bias processor configured to determine a rotation bias in a sensor, wherein the rotation bias is based on a maximum likelihood estimate performed using position data acquired at a plurality of points in time for a cooperative target travelling over a path through the sensor field of view and is also based on sensor data acquired in the sensor field of view at the plurality of points in time; and an automatic controller configured to command the sensor to scan across a specific path in the field of view of the sensor based on the determined rotation bias. 